static const q15_t in_com1[128] = {
    0xFD7C, 0x29C6, 0xB448, 0xB6F5, 0x7742, 0xC7EE, 0xBCD7, 0xAF53,
    0x66ED, 0xD38B, 0x19D6, 0x3B21, 0xC3BA, 0xEC51, 0xF727, 0x6C5E,
    0xBB24, 0x00D4, 0x33AE, 0xD99D, 0x0C81, 0x2C46, 0xD425, 0x1107,
    0x414F, 0x02D4, 0xFC30, 0x1F9E, 0xD6B5, 0x1AC9, 0x3E3D, 0x0C08,
    0xA725, 0xE1FE, 0x2435, 0xCD25, 0xFF3C, 0x50B5, 0xFB78, 0x5AF2,
    0x8270, 0x02A1, 0x26CF, 0x0F87, 0x11F5, 0xD161, 0x370E, 0xE097,
    0xF1E4, 0xC2D9, 0xE4C1, 0x25EF, 0xBBCB, 0x2742, 0xE7F6, 0x4921,
    0x077A, 0x36DC, 0xD9C8, 0x2A3E, 0xED8E, 0x399A, 0xF6B6, 0xB9D8,
    0xECAF, 0xE7D6, 0x1DBA, 0x3894, 0x18D3, 0xDAB7, 0x14A7, 0x45F5,
    0xF799, 0x2D40, 0x8000, 0x2039, 0xF581, 0xB512, 0x6649, 0xFB0F,
    0x29A9, 0xBB9C, 0xF0DE, 0xF48B, 0x636E, 0x3F72, 0x3134, 0xF932,
    0x003E, 0xE556, 0x5F38, 0x1570, 0xF200, 0xFBFB, 0x9C19, 0x02F8,
    0x0CF1, 0x2775, 0x9D7C, 0xF12A, 0x04AE, 0xE56F, 0x5401, 0x664B,
    0xBD4D, 0x152C, 0x4818, 0xE072, 0xD16D, 0xA817, 0xD8BD, 0x2DD0,
    0xF028, 0x370F, 0xA267, 0xC16A, 0xC761, 0x1F03, 0xACB4, 0xE32F,
    0x20FB, 0x09B0, 0xD5C3, 0x3069, 0x5A56, 0xF5C7, 0x6041, 0x6E07
    };

static const q15_t in_com2[128] = {
    0x31D0, 0x0754, 0xC544, 0x40DC, 0xF9CB, 0x015B, 0x12A9, 0xC6A2,
    0x0E23, 0xE729, 0xC9F3, 0xD977, 0xEA12, 0x054A, 0x24FB, 0x3E11,
    0x1A24, 0x0032, 0x2574, 0x0BFC, 0x19EC, 0xE325, 0xB3E4, 0x178E,
    0xF1A3, 0xCD54, 0xB488, 0xFC0C, 0x1B27, 0xE47A, 0xEADB, 0x1189,
    0x0888, 0x15FF, 0xFEC8, 0xEA14, 0xDB63, 0x2D72, 0x2552, 0x4904,
    0xF88C, 0x0EF9, 0xEEC1, 0x9A88, 0x16D6, 0x19F8, 0xF084, 0xF44C,
    0xC3A0, 0xD01F, 0xEEA2, 0xD851, 0x136C, 0x3B69, 0xA228, 0xDFE9,
    0xCE48, 0x1634, 0xD2F9, 0xFC51, 0x331C, 0x0EBC, 0x3ECA, 0x0C43,
    0x483F, 0xF765, 0x183B, 0x3F43, 0x2C37, 0xE1E9, 0xE2B6, 0xE028,
    0x021B, 0xAC37, 0x251F, 0x040D, 0xEEEF, 0x3A4A, 0x07D8, 0xC073,
    0xDBC8, 0x528B, 0xF021, 0x5D3B, 0x0A2B, 0xE89D, 0x1AEB, 0x306E,
    0xD656, 0x339F, 0x1CDE, 0x27CC, 0x326D, 0x0336, 0xE500, 0xF792,
    0x0819, 0x1687, 0x45E4, 0x0B27, 0x62B1, 0xE3FD, 0x5A46, 0xC59C,
    0x453F, 0xF6F1, 0xFB7C, 0x7FFF, 0x044C, 0xEC5C, 0x2D5F, 0xE8A5,
    0xE840, 0x1AEB, 0x9073, 0xE177, 0x3B16, 0xC0E1, 0x4ACC, 0x1535,
    0xE2B5, 0x3A7F, 0xDC23, 0xF699, 0xE13B, 0x146F, 0x2BA2, 0xE3AC
    };

static const q15_t in_partial1[128] = {
    0x6FB3, 0x0F54, 0x7FFF, 0x0E22, 0x05CB, 0xA8EF, 0x1CA1, 0x1186,
    0xDC25, 0xF8E1, 0x2F69, 0x1EDC, 0x0AB5, 0x2FE2, 0x33BA, 0x6A94,
    0xEB74, 0x34BF, 0xC92F, 0x3C78, 0x1BBD, 0x4F33, 0xD9BF, 0x2150,
    0x1696, 0xEC42, 0xFD13, 0xD3E2, 0x2459, 0x225C, 0x30FC, 0x2BC9,
    0xD37E, 0x2953, 0x573A, 0x1A1C, 0x1BD0, 0x2048, 0xA7AA, 0xD25B,
    0x19BC, 0x1A02, 0xFC2C, 0x2111, 0xE7D8, 0x3BB0, 0x19A7, 0xD890,
    0x56E5, 0x149C, 0xE617, 0x0515, 0x0E13, 0x2B88, 0x0B3D, 0x322F,
    0x23AB, 0x1208, 0x1038, 0xE696, 0x19BD, 0x1674, 0xE7B1, 0x1562,
    0x45B4, 0xFB05, 0xF2A4, 0xBBD4, 0xD1E8, 0xBE66, 0x3804, 0xFC48,
    0xE403, 0x34C8, 0x1801, 0xDE4C, 0xFD27, 0x1B1C, 0xBFFB, 0x1F08,
    0xE61F, 0x166A, 0x2390, 0x0D02, 0x186F, 0x12AA, 0x1031, 0x0BD5,
    0x1C4E, 0x4ED0, 0xE999, 0xD919, 0xE21F, 0x1FB6, 0xACE8, 0xC400,
    0xE780, 0x10BA, 0xA6FF, 0x07C7, 0x9AD8, 0x6A71, 0x0C40, 0x3015,
    0xDC29, 0xBFB3, 0xCCCA, 0x222E, 0x051E, 0xDA07, 0x502D, 0x0866,
    0xD162, 0xFFE5, 0x0E2A, 0xF858, 0x18B0, 0xBE37, 0xFB5A, 0xDC92,
    0xFD95, 0x3709, 0x1687, 0xCE71, 0x0578, 0xC542, 0x0112, 0xEC46
    };

static const q15_t in_partial2[128] = {
    0x1641, 0x52F0, 0x1B50, 0x2507, 0xD6A1, 0xD60C, 0x21F8, 0x3324,
    0xEE6F, 0xF2D6, 0xAC64, 0x3783, 0x2EF4, 0xC46B, 0xB3CB, 0xDB05,
    0xC429, 0xE63D, 0xF672, 0x2602, 0xEA6A, 0xF10B, 0xD974, 0xCBE7,
    0x9AC7, 0x5E5D, 0x06A9, 0x1A5F, 0x33E3, 0xEBE5, 0xEAD9, 0xE37C,
    0xDA86, 0xF0ED, 0x1E21, 0x0F69, 0xB999, 0x2D58, 0x26AC, 0x4000,
    0xBC47, 0xFD45, 0x3270, 0xCBBE, 0x2E9C, 0xDB5E, 0xF991, 0xB49C,
    0xF2F1, 0xF68B, 0xAD3A, 0x4EB7, 0xC9CE, 0x4D4C, 0xFDB6, 0x1047,
    0xF693, 0xD66D, 0x1CC9, 0x0271, 0xF998, 0x276D, 0x05C9, 0x01EB,
    0x464C, 0xF9F7, 0xF5D2, 0x368B, 0x374E, 0x0DA5, 0xDF99, 0x0CB8,
    0x6031, 0x0677, 0xFD6B, 0xB882, 0xF267, 0xD799, 0xEDFE, 0x8000,
    0xD780, 0x04F9, 0x4E9F, 0xA875, 0x8FF0, 0xEED7, 0x18CC, 0x1B45,
    0x9B33, 0xF73D, 0x0CF3, 0x05FF, 0x2C07, 0xFAC8, 0xDB2A, 0x1B0A,
    0xE6A5, 0xF5D1, 0xC3B6, 0x1533, 0xF0AF, 0xDF2A, 0xF586, 0x1136,
    0x38F6, 0xF003, 0x3704, 0x1C10, 0xC4B7, 0x093F, 0xA87B, 0x4A42,
    0xDCB6, 0xB6DC, 0xD61A, 0x3DEB, 0x08A0, 0x398C, 0xE67C, 0x16E7,
    0x0DDD, 0x3F0B, 0x1039, 0xA885, 0xE47A, 0x0AA8, 0x1BBF, 0xC9A2
    };

static const q15_t ref_correlate_14_15[29] = {
    0xFF46, 0x0BF7, 0xEC48, 0xE15E, 0x20E5, 0x06E3, 0x036D, 0xFEE6,
    0xF728, 0x39EA, 0x56F4, 0xDF7E, 0x1A7F, 0xBCDB, 0x13EE, 0x249C,
    0xC74E, 0xEF95, 0x021B, 0x6365, 0x9AE6, 0x019C, 0x3A55, 0xB776,
    0x1F1F, 0x1C98, 0xE76B, 0xF857, 0x0000
    };

static const q15_t ref_correlate_14_16[31] = {
    0xFEC8, 0x1387, 0xE740, 0xC8DD, 0x1B31, 0x05B5, 0xE653, 0xDC4F,
    0x30CE, 0xE19A, 0x4672, 0x73A0, 0xC244, 0x10F4, 0xBCDB, 0x13EE,
    0x249C, 0xC74E, 0xEF95, 0x021B, 0x6365, 0x9AE6, 0x019C, 0x3A55,
    0xB776, 0x1F1F, 0x1C98, 0xE76B, 0xF857, 0x0000, 0x0000
    };

static const q15_t ref_correlate_14_17[33] = {
    0xFF7D, 0x0750, 0x0411, 0xD855, 0xE138, 0x0FBE, 0xF7FE, 0xD5D9,
    0xF153, 0x27BA, 0xE6E0, 0x5285, 0x6751, 0xBE3F, 0x10F4, 0xBCDB,
    0x13EE, 0x249C, 0xC74E, 0xEF95, 0x021B, 0x6365, 0x9AE6, 0x019C,
    0x3A55, 0xB776, 0x1F1F, 0x1C98, 0xE76B, 0xF857, 0x0000, 0x0000,
    0x0000
    };

static const q15_t ref_correlate_14_18[35] = {
    0xFFFF, 0xFF8D, 0x0732, 0x03F4, 0xD884, 0xE122, 0x0FA4, 0xF7DE,
    0xD602, 0xF142, 0x27C4, 0xE6F8, 0x526D, 0x6749, 0xBE3F, 0x10F4,
    0xBCDB, 0x13EE, 0x249C, 0xC74E, 0xEF95, 0x021B, 0x6365, 0x9AE6,
    0x019C, 0x3A55, 0xB776, 0x1F1F, 0x1C98, 0xE76B, 0xF857, 0x0000,
    0x0000, 0x0000, 0x0000
    };

static const q15_t ref_correlate_14_33[65] = {
    0xFFD5, 0x0271, 0x0117, 0xEA66, 0x00EF, 0x31E3, 0xDFFB, 0xBC40,
    0x4AE7, 0x5B37, 0xD7BF, 0xBD7D, 0x67C5, 0x7FFF, 0x9F44, 0x06E8,
    0x0CE0, 0x1944, 0xEAA4, 0xD64E, 0xEEDE, 0xC6CD, 0x29F1, 0xF0AF,
    0xF696, 0x2F71, 0xD37D, 0x4CAB, 0x6749, 0xBE3F, 0x10F4, 0xBCDB,
    0x13EE, 0x249C, 0xC74E, 0xEF95, 0x021B, 0x6365, 0x9AE6, 0x019C,
    0x3A55, 0xB776, 0x1F1F, 0x1C98, 0xE76B, 0xF857, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000
    };

static const q15_t ref_correlate_15_15[29] = {
    0xFF46, 0x0BF7, 0xEC48, 0xE15E, 0x20E5, 0x06E3, 0x036D, 0xFEE6,
    0xF728, 0x39EA, 0x56F4, 0xDF7E, 0x1A7F, 0xBCDB, 0x115F, 0x243E,
    0xC8D2, 0xF23F, 0x05D7, 0x651D, 0x99EC, 0x0593, 0x390B, 0xB75E,
    0x1F8D, 0x181C, 0xEB7A, 0xF7D5, 0xFC8F
    };

static const q15_t ref_correlate_15_16[31] = {
    0xFEC8, 0x1387, 0xE740, 0xC8DD, 0x1B31, 0x05B5, 0xE653, 0xDC4F,
    0x30CE, 0xE19A, 0x4672, 0x73A0, 0xC244, 0x10F4, 0xB891, 0x115F,
    0x243E, 0xC8D2, 0xF23F, 0x05D7, 0x651D, 0x99EC, 0x0593, 0x390B,
    0xB75E, 0x1F8D, 0x181C, 0xEB7A, 0xF7D5, 0xFC8F, 0x0000
    };

static const q15_t ref_correlate_15_17[33] = {
    0xFF7D, 0x0750, 0x0411, 0xD855, 0xE138, 0x0FBE, 0xF7FE, 0xD5D9,
    0xF153, 0x27BA, 0xE6E0, 0x5285, 0x6751, 0xBE3F, 0x0F25, 0xB891,
    0x115F, 0x243E, 0xC8D2, 0xF23F, 0x05D7, 0x651D, 0x99EC, 0x0593,
    0x390B, 0xB75E, 0x1F8D, 0x181C, 0xEB7A, 0xF7D5, 0xFC8F, 0x0000,
    0x0000
    };

static const q15_t ref_correlate_15_18[35] = {
    0xFFFF, 0xFF8D, 0x0732, 0x03F4, 0xD884, 0xE122, 0x0FA4, 0xF7DE,
    0xD602, 0xF142, 0x27C4, 0xE6F8, 0x526D, 0x6749, 0xBE3B, 0x0F25,
    0xB891, 0x115F, 0x243E, 0xC8D2, 0xF23F, 0x05D7, 0x651D, 0x99EC,
    0x0593, 0x390B, 0xB75E, 0x1F8D, 0x181C, 0xEB7A, 0xF7D5, 0xFC8F,
    0x0000, 0x0000, 0x0000
    };

static const q15_t ref_correlate_15_33[65] = {
    0xFFD5, 0x0271, 0x0117, 0xEA66, 0x00EF, 0x31E3, 0xDFFB, 0xBC40,
    0x4AE7, 0x5B37, 0xD7BF, 0xBD7D, 0x67C5, 0x7FFF, 0x9EAD, 0x05B2,
    0x0E56, 0x1B2B, 0xE8C4, 0xD694, 0xF415, 0xCA4D, 0x2AEF, 0xEF0E,
    0xFBD9, 0x316F, 0xD1B2, 0x4BD7, 0x64B3, 0xBE3B, 0x0F25, 0xB891,
    0x115F, 0x243E, 0xC8D2, 0xF23F, 0x05D7, 0x651D, 0x99EC, 0x0593,
    0x390B, 0xB75E, 0x1F8D, 0x181C, 0xEB7A, 0xF7D5, 0xFC8F, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000
    };

static const q15_t ref_correlate_16_15[31] = {
    0x0000, 0xFF46, 0x0BF7, 0xEC48, 0xE15E, 0x20E5, 0x06E3, 0x036D,
    0xFEE6, 0xF728, 0x39EA, 0x56F4, 0xDF7E, 0x1A7F, 0xBCDB, 0x115F,
    0x438D, 0xCD4D, 0xDFAE, 0xE538, 0x375A, 0x84E4, 0x118B, 0x0879,
    0xC72A, 0x20B4, 0x12DB, 0x2263, 0xC61C, 0x02C3, 0x2A2C
    };

static const q15_t ref_correlate_16_16[31] = {
    0xFEC8, 0x1387, 0xE740, 0xC8DD, 0x1B31, 0x05B5, 0xE653, 0xDC4F,
    0x30CE, 0xE19A, 0x4672, 0x73A0, 0xC244, 0x10F4, 0xB891, 0x45EB,
    0x438D, 0xCD4D, 0xDFAE, 0xE538, 0x375A, 0x84E4, 0x118B, 0x0879,
    0xC72A, 0x20B4, 0x12DB, 0x2263, 0xC61C, 0x02C3, 0x2A2C
    };

static const q15_t ref_correlate_16_17[33] = {
    0xFF7D, 0x0750, 0x0411, 0xD855, 0xE138, 0x0FBE, 0xF7FE, 0xD5D9,
    0xF153, 0x27BA, 0xE6E0, 0x5285, 0x6751, 0xBE3F, 0x0F25, 0xCEB2,
    0x45EB, 0x438D, 0xCD4D, 0xDFAE, 0xE538, 0x375A, 0x84E4, 0x118B,
    0x0879, 0xC72A, 0x20B4, 0x12DB, 0x2263, 0xC61C, 0x02C3, 0x2A2C,
    0x0000
    };

static const q15_t ref_correlate_16_18[35] = {
    0xFFFF, 0xFF8D, 0x0732, 0x03F4, 0xD884, 0xE122, 0x0FA4, 0xF7DE,
    0xD602, 0xF142, 0x27C4, 0xE6F8, 0x526D, 0x6749, 0xBE3B, 0x0F50,
    0xCEB2, 0x45EB, 0x438D, 0xCD4D, 0xDFAE, 0xE538, 0x375A, 0x84E4,
    0x118B, 0x0879, 0xC72A, 0x20B4, 0x12DB, 0x2263, 0xC61C, 0x02C3,
    0x2A2C, 0x0000, 0x0000
    };

static const q15_t ref_correlate_16_33[65] = {
    0xFFD5, 0x0271, 0x0117, 0xEA66, 0x00EF, 0x31E3, 0xDFFB, 0xBC40,
    0x4AE7, 0x5B37, 0xD7BF, 0xBD7D, 0x67C5, 0x7FFF, 0x9EAD, 0x0CEB,
    0x1D2E, 0x0945, 0xD176, 0xED91, 0xF0BC, 0x8A69, 0x0008, 0xE2E6,
    0x0FCA, 0xF0FF, 0xB944, 0x61C9, 0x6ED8, 0xDDF1, 0x0F50, 0xCEB2,
    0x45EB, 0x438D, 0xCD4D, 0xDFAE, 0xE538, 0x375A, 0x84E4, 0x118B,
    0x0879, 0xC72A, 0x20B4, 0x12DB, 0x2263, 0xC61C, 0x02C3, 0x2A2C,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000
    };

static const q15_t ref_correlate_17_15[33] = {
    0x0000, 0x0000, 0xFF46, 0x0BF7, 0xEC48, 0xE15E, 0x20E5, 0x06E3,
    0x036D, 0xFEE6, 0xF728, 0x39EA, 0x56F4, 0xDF7E, 0x1A7F, 0xBCDB,
    0x115F, 0x438D, 0xB968, 0xDCD5, 0xF104, 0x4C15, 0xA1F8, 0x1EE8,
    0x00DE, 0xE606, 0x16AA, 0x1220, 0x25BA, 0xA337, 0x225B, 0x263B,
    0xE534
    };

static const q15_t ref_correlate_17_16[33] = {
    0x0000, 0xFEC8, 0x1387, 0xE740, 0xC8DD, 0x1B31, 0x05B5, 0xE653,
    0xDC4F, 0x30CE, 0xE19A, 0x4672, 0x73A0, 0xC244, 0x10F4, 0xB891,
    0x45EB, 0x222A, 0xB968, 0xDCD5, 0xF104, 0x4C15, 0xA1F8, 0x1EE8,
    0x00DE, 0xE606, 0x16AA, 0x1220, 0x25BA, 0xA337, 0x225B, 0x263B,
    0xE534
    };

static const q15_t ref_correlate_17_17[33] = {
    0xFF7D, 0x0750, 0x0411, 0xD855, 0xE138, 0x0FBE, 0xF7FE, 0xD5D9,
    0xF153, 0x27BA, 0xE6E0, 0x5285, 0x6751, 0xBE3F, 0x0F25, 0xCEB2,
    0x37DB, 0x222A, 0xB968, 0xDCD5, 0xF104, 0x4C15, 0xA1F8, 0x1EE8,
    0x00DE, 0xE606, 0x16AA, 0x1220, 0x25BA, 0xA337, 0x225B, 0x263B,
    0xE534
    };

static const q15_t ref_correlate_17_18[35] = {
    0xFFFF, 0xFF8D, 0x0732, 0x03F4, 0xD884, 0xE122, 0x0FA4, 0xF7DE,
    0xD602, 0xF142, 0x27C4, 0xE6F8, 0x526D, 0x6749, 0xBE3B, 0x0F50,
    0xCE97, 0x37DB, 0x222A, 0xB968, 0xDCD5, 0xF104, 0x4C15, 0xA1F8,
    0x1EE8, 0x00DE, 0xE606, 0x16AA, 0x1220, 0x25BA, 0xA337, 0x225B,
    0x263B, 0xE534, 0x0000
    };

static const q15_t ref_correlate_17_33[65] = {
    0xFFD5, 0x0271, 0x0117, 0xEA66, 0x00EF, 0x31E3, 0xDFFB, 0xBC40,
    0x4AE7, 0x5B37, 0xD7BF, 0xBD7D, 0x67C5, 0x7FFF, 0x9EAD, 0x0CEB,
    0x1897, 0xFFD6, 0xDCD6, 0xFC5F, 0xE221, 0x8C89, 0x28A1, 0xFE28,
    0x1784, 0xE453, 0xE236, 0x714F, 0x60E6, 0xD77E, 0xFB2A, 0xCE97,
    0x37DB, 0x222A, 0xB968, 0xDCD5, 0xF104, 0x4C15, 0xA1F8, 0x1EE8,
    0x00DE, 0xE606, 0x16AA, 0x1220, 0x25BA, 0xA337, 0x225B, 0x263B,
    0xE534, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000
    };

static const q15_t ref_correlate_32_15[63] = {
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0xFF46, 0x0BF7, 0xEC48, 0xE15E, 0x20E5, 0x06E3, 0x036D,
    0xFEE6, 0xF728, 0x39EA, 0x56F4, 0xDF7E, 0x1A7F, 0xBCDB, 0x115F,
    0x438D, 0xB968, 0xDD13, 0xFFFB, 0x42FC, 0x9AE4, 0x22E2, 0xE975,
    0xE40E, 0x2BED, 0xEF86, 0x387B, 0x9391, 0xDF4C, 0x51EA, 0xC4D8,
    0xFF6C, 0x25D2, 0xB4A0, 0xEAA0, 0x30BC, 0xC669, 0xEE81, 0x3151,
    0xDE91, 0x1DF4, 0x1C9B, 0xDB00, 0x0877, 0x18E9, 0x04AF
    };

static const q15_t ref_correlate_32_16[63] = {
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0xFEC8, 0x1387, 0xE740, 0xC8DD, 0x1B31, 0x05B5, 0xE653, 0xDC4F,
    0x30CE, 0xE19A, 0x4672, 0x73A0, 0xC244, 0x10F4, 0xB891, 0x45EB,
    0x222A, 0xB9CE, 0xF621, 0xED5E, 0x490C, 0xB05C, 0x0D9E, 0xF1B7,
    0x03B8, 0x2D4C, 0xEDAD, 0x47D0, 0x8000, 0xEC49, 0x7018, 0xCAAE,
    0xFF6C, 0x25D2, 0xB4A0, 0xEAA0, 0x30BC, 0xC669, 0xEE81, 0x3151,
    0xDE91, 0x1DF4, 0x1C9B, 0xDB00, 0x0877, 0x18E9, 0x04AF
    };

static const q15_t ref_correlate_32_17[63] = {
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFF7D,
    0x0750, 0x0411, 0xD855, 0xE138, 0x0FBE, 0xF7FE, 0xD5D9, 0xF153,
    0x27BA, 0xE6E0, 0x5285, 0x6751, 0xBE3F, 0x0F25, 0xCEB2, 0x37DB,
    0x2255, 0xC45C, 0xEE4B, 0xEFEC, 0x5217, 0xA767, 0x1119, 0xFF0D,
    0x044C, 0x2C85, 0xF422, 0x3F61, 0x8504, 0xF8FF, 0x728D, 0xCAAE,
    0xFF6C, 0x25D2, 0xB4A0, 0xEAA0, 0x30BC, 0xC669, 0xEE81, 0x3151,
    0xDE91, 0x1DF4, 0x1C9B, 0xDB00, 0x0877, 0x18E9, 0x04AF
    };

static const q15_t ref_correlate_32_18[63] = {
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFF8D,
    0x0732, 0x03F4, 0xD884, 0xE122, 0x0FA4, 0xF7DE, 0xD602, 0xF142,
    0x27C4, 0xE6F8, 0x526D, 0x6749, 0xBE3B, 0x0F50, 0xCE97, 0x37DC,
    0x226A, 0xC44D, 0xEE4F, 0xEFFD, 0x5205, 0xA76E, 0x1132, 0xFF0E,
    0x044B, 0x2C91, 0xF412, 0x3F6C, 0x851C, 0xF904, 0x728D, 0xCAAE,
    0xFF6C, 0x25D2, 0xB4A0, 0xEAA0, 0x30BC, 0xC669, 0xEE81, 0x3151,
    0xDE91, 0x1DF4, 0x1C9B, 0xDB00, 0x0877, 0x18E9, 0x04AF
    };

static const q15_t ref_correlate_32_33[65] = {
    0xFFD5, 0x0271, 0x0117, 0xEA66, 0x00EF, 0x31E3, 0xDFFB, 0xBC40,
    0x4AE7, 0x5B37, 0xD7BF, 0xBD7D, 0x67C5, 0x7FFF, 0x9EAD, 0x0CEB,
    0x1897, 0xFFE4, 0xE065, 0x00C1, 0xD4FD, 0x8C9B, 0x3CE6, 0xE50E,
    0x00F7, 0xFF2A, 0xCB67, 0x579F, 0x50C6, 0xDDCD, 0xEDB1, 0x9DDC,
    0x3AD2, 0x133C, 0xAF1E, 0xE723, 0xCE63, 0x2169, 0xC4A3, 0x1B8F,
    0xCFB5, 0xF9EA, 0x2CE2, 0x042C, 0x52C2, 0x88A2, 0xF904, 0x728D,
    0xCAAE, 0xFF6C, 0x25D2, 0xB4A0, 0xEAA0, 0x30BC, 0xC669, 0xEE81,
    0x3151, 0xDE91, 0x1DF4, 0x1C9B, 0xDB00, 0x0877, 0x18E9, 0x04AF,
    0x0000
    };

static const q15_t ref_conv_14_15[28] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5EFF, 0xC0A4,
    0x2C34, 0x1430, 0x0074, 0x084B, 0xD0CA, 0xDD57, 0x22F1, 0x048D,
    0x1A29, 0x11F7, 0xEDC6, 0xFA50
    };

static const q15_t ref_conv_14_16[29] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5EFF, 0xBF6C,
    0x4075, 0xEF79, 0xDD09, 0x421F, 0xB59A, 0xBCC6, 0xFBD3, 0x3675,
    0x049B, 0x1E7E, 0x0A72, 0xDD16, 0xF675
    };

static const q15_t ref_conv_14_17[30] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5EFF, 0xBF6C,
    0x3FF2, 0xF801, 0xCD93, 0x3334, 0xCDF5, 0xB153, 0xEE1C, 0x25FB,
    0x19A0, 0x156A, 0x0FB8, 0xE92A, 0xEA25, 0xFBFB
    };

static const q15_t ref_conv_14_18[31] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5EFF, 0xBF6C,
    0x3FF2, 0xF800, 0xCDA3, 0x3316, 0xCDD8, 0xB182, 0xEE06, 0x25E1,
    0x1980, 0x1593, 0x0FA7, 0xE934, 0xEA3D, 0xFBE3, 0xFFF8
    };

static const q15_t ref_conv_14_33[46] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5EFF, 0xBF6C,
    0x3FF2, 0xF800, 0xCCE7, 0x3F13, 0xBB17, 0x9E12, 0xF2D3, 0x099D,
    0x5E36, 0xEB3F, 0xCA58, 0x298B, 0x6CA3, 0x20E6, 0x8000, 0x62AE,
    0x45DC, 0xD804, 0xE2BA, 0x18D7, 0x106A, 0xD73C, 0x1804, 0x2485,
    0xE39C, 0xFF98, 0x1803, 0xFEF0, 0xF949, 0xFEB0
    };

static const q15_t ref_conv_15_15[29] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xC022,
    0x3043, 0x0FB5, 0x00E2, 0x0833, 0xCF80, 0xE14E, 0x21F7, 0x0644,
    0x1DE6, 0x14A1, 0xEF4A, 0xF9F2, 0xFD72
    };

static const q15_t ref_conv_15_16[30] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xBEEA,
    0x4484, 0xEAFE, 0xDD77, 0x4207, 0xB450, 0xC0BD, 0xFAD9, 0x382D,
    0x0857, 0x2128, 0x0BF6, 0xDCB9, 0xF3E6, 0xFBB6
    };

static const q15_t ref_conv_15_17[31] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xBEEA,
    0x4401, 0xF386, 0xCE01, 0x331C, 0xCCAB, 0xB54A, 0xED22, 0x27B3,
    0x1D5C, 0x1814, 0x113C, 0xE8CC, 0xE797, 0xF7B1, 0xFE31
    };

static const q15_t ref_conv_15_18[32] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xBEEA,
    0x4401, 0xF385, 0xCE11, 0x32FE, 0xCC8E, 0xB579, 0xED0C, 0x2799,
    0x1D3C, 0x183D, 0x112B, 0xE8D6, 0xE7AE, 0xF799, 0xFE2A, 0xFFFD
    };

static const q15_t ref_conv_15_33[47] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xBEEA,
    0x4401, 0xF385, 0xCD55, 0x3EFB, 0xB9CD, 0xA209, 0xF1D9, 0x0B55,
    0x61F2, 0xEDE9, 0xCBDC, 0x292D, 0x6A15, 0x1C9B, 0x8000, 0x62AB,
    0x4346, 0xD730, 0xE0EF, 0x1AD5, 0x15AD, 0xD59B, 0x1902, 0x2806,
    0xE8D4, 0xFFDE, 0x1622, 0x00D7, 0xFABF, 0xFD7A, 0xFF69
    };

static const q15_t ref_conv_16_15[30] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xEA4F,
    0x3677, 0xDDFB, 0x37CB, 0x02F2, 0xD0A6, 0xF11A, 0xF166, 0x123C,
    0x08DE, 0xE6DE, 0xCEAA, 0xE761, 0x01EC, 0x1F4F
    };

static const q15_t ref_conv_16_16[31] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x4AB8, 0xB944, 0x1460, 0x3CC5, 0xB576, 0xD08A, 0xCA48, 0x4424,
    0xF350, 0xF366, 0xEB56, 0xCA28, 0xF861, 0x1B05, 0x348C
    };

static const q15_t ref_conv_16_17[32] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x4A35, 0xC1CC, 0x04EA, 0x2DDA, 0xCDD1, 0xC516, 0xBC91, 0x33AB,
    0x0854, 0xEA51, 0xF09D, 0xD63B, 0xEC12, 0x1700, 0x32BD, 0x1621
    };

static const q15_t ref_conv_16_18[33] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x4A35, 0xC1CB, 0x04FA, 0x2DBD, 0xCDB4, 0xC545, 0xBC7B, 0x3390,
    0x0835, 0xEA7A, 0xF08B, 0xD645, 0xEC29, 0x16E8, 0x32B5, 0x161E,
    0x002B
    };

static const q15_t ref_conv_16_33[48] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x4A35, 0xC1CB, 0x043E, 0x39B9, 0xBAF3, 0xB1D6, 0xC147, 0x174D,
    0x4CEA, 0xC026, 0xAB3C, 0x169C, 0x6E8F, 0x3BEA, 0xAADD, 0x78CC,
    0x4370, 0xF6E6, 0xEB14, 0x30C7, 0xFD3F, 0x952B, 0x2CF3, 0x1BDD,
    0xBDED, 0xBFFA, 0x12CA, 0x17D4, 0xE372, 0xEB93, 0x0E41, 0x0739
    };

static const q15_t ref_conv_17_15[31] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xEA4F,
    0x1BAB, 0xDA0A, 0x5764, 0xE00D, 0xD3FD, 0xF05F, 0xE75C, 0x3119,
    0x0143, 0xF43B, 0xEBBE, 0xFC1C, 0x0DB8, 0x1C77, 0xEC1B
    };

static const q15_t ref_conv_17_16[32] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2FEC, 0xB553, 0x33F9, 0x19E1, 0xB8CD, 0xCFCF, 0xC03E, 0x6301,
    0xEBB5, 0x00C3, 0x086A, 0xDEE2, 0x042D, 0x182C, 0x20A7, 0xDE9D
    };

static const q15_t ref_conv_17_17[33] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2F69, 0xBDDB, 0x2482, 0x0AF6, 0xD128, 0xC45B, 0xB287, 0x5287,
    0x00BA, 0xF7AE, 0x0DB0, 0xEAF6, 0xF7DE, 0x1427, 0x1ED8, 0xF4BE,
    0xF1F0
    };

static const q15_t ref_conv_17_18[34] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2F69, 0xBDDA, 0x2493, 0x0AD8, 0xD10B, 0xC48A, 0xB271, 0x526D,
    0x009A, 0xF7D7, 0x0D9F, 0xEB00, 0xF7F5, 0x1410, 0x1ED1, 0xF4BA,
    0xF21B, 0xFFE5
    };

static const q15_t ref_conv_17_33[49] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2F69, 0xBDDA, 0x23D7, 0x16D5, 0xBE4A, 0xB11B, 0xB73E, 0x3629,
    0x454F, 0xCD83, 0xC850, 0x2B57, 0x7A5B, 0x3912, 0x96F8, 0x5768,
    0x3561, 0xF6CA, 0xD6EF, 0x2A55, 0xEF4D, 0xA4B1, 0x55E5, 0x0F31,
    0xC5A7, 0xDB3C, 0x3B63, 0x19F4, 0xD4D6, 0xFA62, 0x19A1, 0xFDCA,
    0xFB69
    };

static const q15_t ref_conv_32_15[46] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xEA4F,
    0x1BAB, 0xDA5C, 0x6B8C, 0xD3B1, 0xBF5E, 0x2E14, 0xBD24, 0x29C3,
    0x4C5C, 0xBC5B, 0xF040, 0x18EE, 0xD82E, 0x2DBF, 0x1AF5, 0xC57C,
    0x0684, 0x0617, 0xDA75, 0x0DED, 0xDC1A, 0xEBC3, 0x17D7, 0xF19D,
    0xE299, 0xEB05, 0xE6E4, 0x0840, 0x127B, 0x037A
    };

static const q15_t ref_conv_32_16[47] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2FEC, 0xB5A5, 0x4822, 0x0D85, 0xA42D, 0x0D83, 0x9606, 0x5BAC,
    0x36CD, 0xC8E2, 0x0CEC, 0xFBB5, 0xCEA3, 0x2975, 0x4F80, 0xA419,
    0x06EB, 0x1F26, 0xC7D8, 0x13FD, 0xF192, 0xD67F, 0x2018, 0x1147,
    0xE3F9, 0xE92C, 0xF639, 0xF43A, 0x1F78, 0x21A8, 0x05D6
    };

static const q15_t ref_conv_32_17[48] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2F69, 0xBE2D, 0x38AB, 0xFE9A, 0xBC88, 0x0210, 0x884F, 0x4B32,
    0x4BD2, 0xBFCE, 0x1233, 0x07C8, 0xC254, 0x2570, 0x4DB2, 0xBA3A,
    0xF8DB, 0x1F51, 0xD265, 0x0C26, 0xF41F, 0xDF8A, 0x1723, 0x14C2,
    0xF14F, 0xE9C0, 0xF572, 0xFAAF, 0x1709, 0x2720, 0x128C, 0x0275
    };

static const q15_t ref_conv_32_18[49] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2F69, 0xBE2C, 0x38BC, 0xFE7C, 0xBC6B, 0x023F, 0x8839, 0x4B17,
    0x4BB2, 0xBFF7, 0x1221, 0x07D2, 0xC26B, 0x2558, 0x4DAA, 0xBA37,
    0xF906, 0x1F36, 0xD266, 0x0C3B, 0xF410, 0xDF8F, 0x1735, 0x14B0,
    0xF155, 0xE9DA, 0xF573, 0xFAAE, 0x1715, 0x2710, 0x1296, 0x028E,
    0x0005
    };

static const q15_t ref_conv_32_33[64] = {
    0xFF06, 0x101D, 0xE614, 0xCACC, 0x6243, 0xEA1A, 0x8AAB, 0x3CDF,
    0x013F, 0x17F3, 0xD4C8, 0x1C5E, 0x0236, 0x0D7A, 0x5B8E, 0xE917,
    0x2F69, 0xBE2C, 0x37FF, 0x0A79, 0xA9AA, 0xEECF, 0x8D06, 0x2ED4,
    0x7FFF, 0x95A3, 0xCCD2, 0x4829, 0x44D1, 0x4A5B, 0xC5D2, 0x1CE5,
    0x3C4C, 0x161C, 0xA954, 0x36CE, 0xF290, 0x8000, 0x7771, 0x1E17,
    0x9AE8, 0xEC5A, 0x1E0C, 0x003F, 0x05FB, 0x154A, 0xF5FA, 0xF77C,
    0x105A, 0xF5E7, 0xE7A4, 0xDC0A, 0xEFD2, 0xEBCE, 0xFB33, 0xE8A3,
    0xCB86, 0xFFFD, 0x11F8, 0xED32, 0xF40C, 0x0853, 0x05CC, 0x00CD
    };

static const q15_t ref_conv_partial_3_6_8[4] = {
    0x78FA, 0x05CF, 0xF317, 0xBC29
    };

static const q15_t ref_conv_partial_9_6_8[4] = {
    0x5122, 0x23B9, 0xEB35, 0xDD37
    };

static const q15_t ref_conv_partial_7_6_8[4] = {
    0xF146, 0x0868, 0x5122, 0x23B9
    };

